<!DOCTYPE html>
<html lang=en>
<head>
    <!-- so meta -->
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="HandheldFriendly" content="True">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
    <meta name="description" content="Java集合22题 ArrayList 和 Vector 的区别。 说说 ArrayList,Vector, LinkedList 的存储性能和特性。 快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别是什么？ hashmap 的数据结构。 HashMap 的工作原理是什么? Hashmap 什么时候进行扩容呢？ List、Map、Set 三个接口，存取元素时，各有什么特">
<meta name="keywords" content="Java,面试">
<meta property="og:type" content="article">
<meta property="og:title" content="整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）">
<meta property="og:url" content="http:&#x2F;&#x2F;yoursite.com&#x2F;2019&#x2F;10&#x2F;30&#x2F;%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89&#x2F;index.html">
<meta property="og:site_name" content="ECIN&#39;S BLOG">
<meta property="og:description" content="Java集合22题 ArrayList 和 Vector 的区别。 说说 ArrayList,Vector, LinkedList 的存储性能和特性。 快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别是什么？ hashmap 的数据结构。 HashMap 的工作原理是什么? Hashmap 什么时候进行扩容呢？ List、Map、Set 三个接口，存取元素时，各有什么特">
<meta property="og:locale" content="en">
<meta property="og:updated_time" content="2019-11-02T06:58:16.000Z">
<meta name="twitter:card" content="summary">
    
    
        
          
              <link rel="shortcut icon" href="/images/favicon.ico">
          
        
        
          
            <link rel="icon" type="image/png" href="/images/favicon-192x192.png" sizes="192x192">
          
        
        
          
            <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png">
          
        
    
    <!-- title -->
    <title>整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）</title>
    <!-- styles -->
    <link rel="stylesheet" href="/css/style.css">
    <!-- persian styles -->
    
      <link rel="stylesheet" href="/css/rtl.css">
    
    <!-- rss -->
    
    
</head>

<body class="max-width mx-auto px3 ltr">
    
      <div id="header-post">
  <a id="menu-icon" href="#"><i class="fas fa-bars fa-lg"></i></a>
  <a id="menu-icon-tablet" href="#"><i class="fas fa-bars fa-lg"></i></a>
  <a id="top-icon-tablet" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');" style="display:none;"><i class="fas fa-chevron-up fa-lg"></i></a>
  <span id="menu">
    <span id="nav">
      <ul>
         
          <li><a href="/">Home</a></li>
         
          <li><a href="/about/">About</a></li>
         
          <li><a href="/archives/">Writing</a></li>
         
          <li><a href="/projects_url">Projects</a></li>
        
      </ul>
    </span>
    <br/>
    <span id="actions">
      <ul>
        
        <li><a class="icon" href="/2019/10/31/%E5%AE%89%E5%85%A8%E6%9D%83%E9%99%90%E6%A1%86%E6%9E%B6%E4%B9%8B-springboot%E6%95%B4%E5%90%88shiro/"><i class="fas fa-chevron-left" aria-hidden="true" onmouseover="$('#i-prev').toggle();" onmouseout="$('#i-prev').toggle();"></i></a></li>
        
        
        <li><a class="icon" href="/2019/10/23/%E5%89%8D%E7%AB%AFUI%E6%A1%86%E6%9E%B6/"><i class="fas fa-chevron-right" aria-hidden="true" onmouseover="$('#i-next').toggle();" onmouseout="$('#i-next').toggle();"></i></a></li>
        
        <li><a class="icon" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');"><i class="fas fa-chevron-up" aria-hidden="true" onmouseover="$('#i-top').toggle();" onmouseout="$('#i-top').toggle();"></i></a></li>
        <li><a class="icon" href="#"><i class="fas fa-share-alt" aria-hidden="true" onmouseover="$('#i-share').toggle();" onmouseout="$('#i-share').toggle();" onclick="$('#share').toggle();return false;"></i></a></li>
      </ul>
      <span id="i-prev" class="info" style="display:none;">Previous post</span>
      <span id="i-next" class="info" style="display:none;">Next post</span>
      <span id="i-top" class="info" style="display:none;">Back to top</span>
      <span id="i-share" class="info" style="display:none;">Share post</span>
    </span>
    <br/>
    <div id="share" style="display: none">
      <ul>
  <li><a class="icon" href="http://www.facebook.com/sharer.php?u=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/" target="_blank" rel="noopener"><i class="fab fa-facebook " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://twitter.com/share?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&text=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-twitter " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.linkedin.com/shareArticle?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&title=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-linkedin " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://pinterest.com/pin/create/bookmarklet/?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&is_video=false&description=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-pinterest " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="mailto:?subject=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）&body=Check out this article: http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/" target="_blank" rel="noopener"><i class="fas fa-envelope " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://getpocket.com/save?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&title=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-get-pocket " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://reddit.com/submit?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&title=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-reddit " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.stumbleupon.com/submit?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&title=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-stumbleupon " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://digg.com/submit?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&title=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-digg " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.tumblr.com/share/link?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&name=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）&description=" target="_blank" rel="noopener"><i class="fab fa-tumblr " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://news.ycombinator.com/submitlink?u=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&t=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-hacker-news " aria-hidden="true"></i></a></li>
</ul>

    </div>
    <div id="toc">
      <ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#Java集合22题"><span class="toc-number">1.</span> <span class="toc-text">Java集合22题</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#JVM与调优21题"><span class="toc-number">2.</span> <span class="toc-text">JVM与调优21题</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#并发编程28题"><span class="toc-number">3.</span> <span class="toc-text">并发编程28题</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Spring-25题"><span class="toc-number">4.</span> <span class="toc-text">Spring 25题</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#设计模式-10题"><span class="toc-number">5.</span> <span class="toc-text">设计模式 10题</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Springboot-22题"><span class="toc-number">6.</span> <span class="toc-text">Springboot 22题</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Netty10题"><span class="toc-number">7.</span> <span class="toc-text">Netty10题</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Redis-16题"><span class="toc-number">8.</span> <span class="toc-text">Redis 16题</span></a></li></ol>
    </div>
  </span>
</div>

    
    <div class="content index py4">
        
        <article class="post" itemscope itemtype="http://schema.org/BlogPosting">
  <header>
    
    <h1 class="posttitle" itemprop="name headline">
        整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）
    </h1>



    <div class="meta">
      <span class="author" itemprop="author" itemscope itemtype="http://schema.org/Person">
        <span itemprop="name">ECIN'S BLOG</span>
      </span>
      
    <div class="postdate">
      
        <time datetime="2019-10-30T15:06:15.000Z" itemprop="datePublished">2019-10-30</time>
        
      
    </div>


      

      
    <div class="article-tag">
        <i class="fas fa-tag"></i>
        <a class="tag-link" href="/tags/Java/" rel="tag">Java</a>, <a class="tag-link" href="/tags/%E9%9D%A2%E8%AF%95/" rel="tag">面试</a>
    </div>


    </div>
  </header>
  

  <div class="content" itemprop="articleBody">
    <h2 id="Java集合22题"><a href="#Java集合22题" class="headerlink" title="Java集合22题"></a>Java集合22题</h2><ol>
<li>ArrayList 和 Vector 的区别。</li>
<li>说说 ArrayList,Vector, LinkedList 的存储性能和特性。</li>
<li>快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别是什么？</li>
<li>hashmap 的数据结构。</li>
<li>HashMap 的工作原理是什么?</li>
<li>Hashmap 什么时候进行扩容呢？</li>
<li>List、Map、Set 三个接口，存取元素时，各有什么特点？</li>
<li>Set 里的元素是不能重复的，那么用什么方法来区分重复与否呢? 是用 == 还是 equals()? 它们有何区别?</li>
<li>两个对象值相同 (x.equals(y) == true)，但却可有不同的 hash code，这句话对不对?</li>
<li>heap 和 stack 有什么区别。</li>
<li>Java 集合类框架的基本接口有哪些？</li>
<li>HashSet 和 TreeSet 有什么区别？</li>
<li>HashSet 的底层实现是什么?</li>
<li>LinkedHashMap 的实现原理?</li>
<li>为什么集合类没有实现 Cloneable 和 Serializable 接口？</li>
<li>什么是迭代器 (Iterator)？</li>
<li>Iterator 和 ListIterator 的区别是什么？</li>
<li>数组 (Array) 和列表 (ArrayList) 有什么区别？什么时候应该使用 Array 而不是 ArrayList？</li>
<li>Java 集合类框架的最佳实践有哪些？</li>
<li>Set 里的元素是不能重复的，那么用什么方法来区分重复与否呢？是用 == 还是 equals()？它们有何区别？</li>
<li>Comparable 和 Comparator 接口是干什么的？列出它们的区别</li>
<li>Collection 和 Collections 的区别。<h2 id="JVM与调优21题"><a href="#JVM与调优21题" class="headerlink" title="JVM与调优21题"></a>JVM与调优21题</h2></li>
<li>Java 类加载过程？</li>
<li>描述一下 JVM 加载 Class 文件的原理机制?</li>
<li>Java 内存分配。</li>
<li>GC 是什么? 为什么要有 GC？</li>
<li>简述 Java 垃圾回收机制</li>
<li>如何判断一个对象是否存活？（或者 GC 对象的判定方法）</li>
<li>垃圾回收的优点和原理。并考虑 2 种回收机制</li>
<li>垃圾回收器的基本原理是什么？垃圾回收器可以马上回收内存吗？有什么办法主动通知虚 拟机进行垃圾回收？</li>
<li>Java 中会存在内存泄漏吗，请简单描述</li>
<li>深拷贝和浅拷贝。</li>
<li>System.gc() 和 Runtime.gc() 会做什么事情？</li>
<li>finalize() 方法什么时候被调用？析构函数 (finalization) 的目的是什么？</li>
<li>如果对象的引用被置为 null，垃圾收集器是否会立即释放对象占用的内存？</li>
<li>什么是分布式垃圾回收（DGC）？它是如何工作的？</li>
<li>串行（serial）收集器和吞吐量（throughput）收集器的区别是什么？</li>
<li>在 Java 中，对象什么时候可以被垃圾回收？</li>
<li>简述 Java 内存分配与回收策率以及 Minor GC 和 Major GC。</li>
<li>JVM 的永久代中会发生垃圾回收么？</li>
<li>Java 中垃圾收集的方法有哪些？</li>
<li>什么是类加载器，类加载器有哪些？</li>
<li>类加载器双亲委派模型机制？<h2 id="并发编程28题"><a href="#并发编程28题" class="headerlink" title="并发编程28题"></a>并发编程28题</h2></li>
<li>Synchronized 用过吗，其原理是什么？</li>
<li>你刚才提到获取对象的锁，这个“锁”到底是什么？如何确定对象的锁？</li>
<li>什么是可重入性，为什么说 Synchronized 是可重入锁？</li>
<li>JVM 对 Java 的原生锁做了哪些优化？48</li>
<li>为什么说 Synchronized 是非公平锁？49</li>
<li>什么是锁消除和锁粗化？49</li>
<li>为什么说 Synchronized 是一个悲观锁？乐观锁的实现原理又是什么？什么是 CAS，它有 什么特性？</li>
<li>乐观锁一定就是好的吗？</li>
<li>跟 Synchronized 相比，可重入锁 ReentrantLock 其实现原理有什么不同？</li>
<li>那么请谈谈 AQS 框架是怎么回事儿？</li>
<li>请尽可能详尽地对比下 Synchronized 和 ReentrantLock 的异同。</li>
<li>ReentrantLock 是如何实现可重入性的？</li>
<li>除了 ReetrantLock，你还接触过 JUC 中的哪些并发工具？</li>
<li>请谈谈 ReadWriteLock 和 StampedLock。</li>
<li>如何让 Java 的线程彼此同步？你了解过哪些同步器？请分别介绍下。</li>
<li>CyclicBarrier 和 CountDownLatch 看起来很相似，请对比下呢？</li>
<li>Java 线程池相关问题</li>
<li>Java 中的线程池是如何实现的？</li>
<li>创建线程池的几个核心构造参数？</li>
<li>线程池中的线程是怎么创建的？是一开始就随着线程池的启动创建好的吗？</li>
<li>既然提到可以通过配置不同参数创建出不同的线程池，那么 Java 中默认实现好的线程池又 有哪些呢？请比较它们的异同</li>
<li>如何在 Java 线程池中提交线程？</li>
<li>什么是 Java 的内存模型，Java 中各个线程是怎么彼此看到对方的变量的？</li>
<li>请谈谈 volatile 有什么特点，为什么它能保证变量对所有线程的可见性？</li>
<li>既然 volatile 能够保证线程间的变量可见性，是不是就意味着基于 volatile 变量的运算就 是并发安全的？</li>
<li>请对比下 volatile 对比 Synchronized 的异同。</li>
<li>请谈谈 ThreadLocal 是怎么解决并发安全的？</li>
<li>很多人都说要慎用 ThreadLocal，谈谈你的理解，使用 ThreadLocal 需要注意些什么？<h2 id="Spring-25题"><a href="#Spring-25题" class="headerlink" title="Spring 25题"></a>Spring 25题</h2></li>
<li>什么是 Spring 框架？Spring 框架有哪些主要模块？</li>
<li>使用 Spring 框架能带来哪些好处？</li>
<li>什么是控制反转(IOC)？什么是依赖注入？</li>
<li>请解释下 Spring 框架中的 IoC？</li>
<li>BeanFactory 和 ApplicationContext 有什么区别？</li>
<li>Spring 有几种配置方式？</li>
<li>如何用基于 XML 配置的方式配置 Spring？</li>
<li>如何用基于 Java 配置的方式配置 Spring？</li>
<li>怎样用注解的方式配置 Spring？</li>
<li>请解释 Spring Bean 的生命周期？</li>
<li>Spring Bean 的作用域之间有什么区别？</li>
<li>什么是 Spring inner beans？</li>
<li>Spring 框架中的单例 Beans 是线程安全的么？</li>
<li>请举例说明如何在 Spring 中注入一个 Java Collection？</li>
<li>如何向 Spring Bean 中注入一个 Java.util.Properties？</li>
<li>请解释 Spring Bean 的自动装配？</li>
<li>请解释自动装配模式的区别？</li>
<li>如何开启基于注解的自动装配？</li>
<li>请举例解释@Required 注解？</li>
<li>请举例解释@Autowired 注解？</li>
<li>请举例说明@Qualifier 注解？</li>
<li>构造方法注入和设值注入有什么区别？</li>
<li>Spring 框架中有哪些不同类型的事件？</li>
<li>FileSystemResource 和 ClassPathResource 有何区别？</li>
<li>Spring 框架中都用到了哪些设计模式？<h2 id="设计模式-10题"><a href="#设计模式-10题" class="headerlink" title="设计模式 10题"></a>设计模式 10题</h2></li>
<li>请列举出在 JDK 中几个常用的设计模式？</li>
<li>什么是设计模式？你是否在你的代码里面使用过任何设计模式？</li>
<li>Java 中什么叫单例设计模式？请用 Java 写出线程安全的单例模式</li>
<li>在 Java 中，什么叫观察者设计模式（observer design pattern）？</li>
<li>使用工厂模式最主要的好处是什么？在哪里使用？</li>
<li>举一个用 Java 实现的装饰模式(decorator design pattern)？它是作用于对象层次还是类</li>
<li>层次？</li>
<li>在 Java 中，为什么不允许从静态方法中访问非静态变量？</li>
<li>设计一个 ATM 机，请说出你的设计思路？</li>
<li>在 Java 中，什么时候用重载，什么时候用重写？</li>
<li>举例说明什么情况下会更倾向于使用抽象类而不是接口<h2 id="Springboot-22题"><a href="#Springboot-22题" class="headerlink" title="Springboot 22题"></a>Springboot 22题</h2></li>
<li>什么是 Spring Boot？</li>
<li>Spring Boot 有哪些优点？</li>
<li>什么是 JavaConfig？</li>
<li>如何重新加载 Spring Boot 上的更改，而无需重新启动服务器？</li>
<li>Spring Boot 中的监视器是什么？</li>
<li>如何在 Spring Boot 中禁用 Actuator 端点安全性？</li>
<li>如何在自定义端口上运行 Spring Boot 应用程序？</li>
<li>什么是 YAML？</li>
<li>如何实现 Spring Boot 应用程序的安全性？</li>
<li>如何集成 Spring Boot 和 ActiveMQ？</li>
<li>如何使用 Spring Boot 实现分页和排序？</li>
<li>什么是 Swagger？你用 Spring Boot 实现了它吗？</li>
<li>什么是 Spring Profiles？</li>
<li>什么是 Spring Batch？</li>
<li>什么是 FreeMarker 模板？</li>
<li>如何使用 Spring Boot 实现异常处理？</li>
<li>您使用了哪些 starter maven 依赖项？</li>
<li>什么是 CSRF 攻击？</li>
<li>什么是 WebSockets？</li>
<li>什么是 AOP？</li>
<li>什么是 Apache Kafka？</li>
<li>我们如何监视所有 Spring Boot 微服务？<h2 id="Netty10题"><a href="#Netty10题" class="headerlink" title="Netty10题"></a>Netty10题</h2></li>
<li>BIO、NIO和AIO的区别？</li>
<li>NIO的组成？</li>
<li>Netty的特点？</li>
<li>Netty的线程模型？</li>
<li>TCP 粘包/拆包的原因及解决方法？</li>
<li>了解哪几种序列化协议？</li>
<li>如何选择序列化协议？</li>
<li>Netty的零拷贝实现？</li>
<li>Netty的高性能表现在哪些方面？</li>
<li>NIOEventLoopGroup源码？<h2 id="Redis-16题"><a href="#Redis-16题" class="headerlink" title="Redis 16题"></a>Redis 16题</h2></li>
<li>什么是redis?</li>
<li>Reids的特点</li>
<li>Redis支持的数据类型</li>
<li>Redis是单进程单线程的</li>
<li>虚拟内存</li>
<li>Redis锁</li>
<li>读写分离模型</li>
<li>数据分片模型</li>
<li>Redis的回收策略</li>
<li>使用Redis有哪些好处？</li>
<li>redis相比memcached有哪些优势？4</li>
<li>redis常见性能问题和解决方案</li>
<li>MySQL里有2000w数据，redis中只存20w的数据，如何保证redis中的数据都是热点数据 245</li>
<li>Memcache与Redis的区别都有哪些？</li>
<li>Redis 常见的性能问题都有哪些？如何解决？</li>
<li>Redis 最适合的场景</li>
</ol>

  </div>
</article>



        
          <div id="footer-post-container">
  <div id="footer-post">

    <div id="nav-footer" style="display: none">
      <ul>
         
          <li><a href="/">Home</a></li>
         
          <li><a href="/about/">About</a></li>
         
          <li><a href="/archives/">Writing</a></li>
         
          <li><a href="/projects_url">Projects</a></li>
        
      </ul>
    </div>

    <div id="toc-footer" style="display: none">
      <ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#Java集合22题"><span class="toc-number">1.</span> <span class="toc-text">Java集合22题</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#JVM与调优21题"><span class="toc-number">2.</span> <span class="toc-text">JVM与调优21题</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#并发编程28题"><span class="toc-number">3.</span> <span class="toc-text">并发编程28题</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Spring-25题"><span class="toc-number">4.</span> <span class="toc-text">Spring 25题</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#设计模式-10题"><span class="toc-number">5.</span> <span class="toc-text">设计模式 10题</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Springboot-22题"><span class="toc-number">6.</span> <span class="toc-text">Springboot 22题</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Netty10题"><span class="toc-number">7.</span> <span class="toc-text">Netty10题</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Redis-16题"><span class="toc-number">8.</span> <span class="toc-text">Redis 16题</span></a></li></ol>
    </div>

    <div id="share-footer" style="display: none">
      <ul>
  <li><a class="icon" href="http://www.facebook.com/sharer.php?u=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/" target="_blank" rel="noopener"><i class="fab fa-facebook fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://twitter.com/share?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&text=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-twitter fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.linkedin.com/shareArticle?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&title=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-linkedin fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://pinterest.com/pin/create/bookmarklet/?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&is_video=false&description=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-pinterest fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="mailto:?subject=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）&body=Check out this article: http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/" target="_blank" rel="noopener"><i class="fas fa-envelope fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://getpocket.com/save?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&title=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-get-pocket fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://reddit.com/submit?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&title=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-reddit fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.stumbleupon.com/submit?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&title=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-stumbleupon fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://digg.com/submit?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&title=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-digg fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.tumblr.com/share/link?url=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&name=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）&description=" target="_blank" rel="noopener"><i class="fab fa-tumblr fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://news.ycombinator.com/submitlink?u=http://yoursite.com/2019/10/30/%E6%95%B4%E7%90%86%E4%BA%862019%E5%B9%B4Java%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E9%9B%86%20%E5%90%88+%E5%B9%B6%E5%8F%91+%E8%B0%83%E4%BC%98+%E5%BE%AE%E6%9C%8D%E5%8A%A1+spring+Redis%EF%BC%89%EF%BC%88%E8%BD%AC%E8%BD%BD%EF%BC%89/&t=整理了2019年Java面试题（集 合+并发+调优+微服务+spring+Redis）（转载）" target="_blank" rel="noopener"><i class="fab fa-hacker-news fa-lg" aria-hidden="true"></i></a></li>
</ul>

    </div>

    <div id="actions-footer">
        <a id="menu" class="icon" href="#" onclick="$('#nav-footer').toggle();return false;"><i class="fas fa-bars fa-lg" aria-hidden="true"></i> Menu</a>
        <a id="toc" class="icon" href="#" onclick="$('#toc-footer').toggle();return false;"><i class="fas fa-list fa-lg" aria-hidden="true"></i> TOC</a>
        <a id="share" class="icon" href="#" onclick="$('#share-footer').toggle();return false;"><i class="fas fa-share-alt fa-lg" aria-hidden="true"></i> Share</a>
        <a id="top" style="display:none" class="icon" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');"><i class="fas fa-chevron-up fa-lg" aria-hidden="true"></i> Top</a>
    </div>

  </div>
</div>

        
        <footer id="footer">
  <div class="footer-left">
    Copyright &copy; 2020 ECIN520
  </div>
  <div class="footer-right">
    <nav>
      <ul>
         
          <li><a href="/">Home</a></li>
         
          <li><a href="/about/">About</a></li>
         
          <li><a href="/archives/">Writing</a></li>
         
          <li><a href="/projects_url">Projects</a></li>
        
      </ul>
    </nav>
  </div>
</footer>

    </div>
    <!-- styles -->
<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
<link rel="stylesheet" href="/lib/justified-gallery/css/justifiedGallery.min.css">

    <!-- jquery -->
<script src="/lib/jquery/jquery.min.js"></script>
<script src="/lib/justified-gallery/js/jquery.justifiedGallery.min.js"></script>
<!-- clipboard -->

  <script src="/lib/clipboard/clipboard.min.js"></script>
  <script type="text/javascript">
  $(function() {
    // copy-btn HTML
    var btn = "<span class=\"btn-copy tooltipped tooltipped-sw\" aria-label=\"Copy to clipboard!\">";
    btn += '<i class="far fa-clone"></i>';
    btn += '</span>'; 
    // mount it!
    $(".highlight table").before(btn);
    var clip = new ClipboardJS('.btn-copy', {
      text: function(trigger) {
        return Array.from(trigger.nextElementSibling.querySelectorAll('.code')).reduce((str,it)=>str+it.innerText+'\n','')
      }
    });
    clip.on('success', function(e) {
      e.trigger.setAttribute('aria-label', "Copied!");
      e.clearSelection();
    })
  })
  </script>

<script src="/js/main.js"></script>
<!-- search -->

<!-- Google Analytics -->

<!-- Baidu Analytics -->

<!-- Disqus Comments -->


</body>
</html>
